<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原型</title>
</head>
<body>

</body>
<script>
    // 1. 定义 : 原型是function对象的一个属性,它定义了构造函数制造的对象的公共祖先. 通过该构造函数产生的对象, 可以继承该原型的属性和方法. 原型也是对象
    // 2. 利用原型特点和概念, 可以提取共有属性
    // 3. 对象如何查看原型 -> 隐式属性 __proto__
    // 4. 对象如何查看对象的构造函数 -> constructor

    // Person.prototype  --原型
    // Person.prototype = {} 是祖先

    // 2. 利用原型特点和概念, 可以提取共有属性
    Person.prototype.surname = 'yang';
    function Person(name) {
        this.name = this.surname + name;
    }
    var person = new Person('fan');


    // 3. 对象如何查看原型 -> 隐式属性 __proto__
    Person.prototype.name = 'hflxhn';
    function Person() {
        // var this = {
        //  __proto__ : Person.prototype
        // }
    }
    var person = new Person();
    Person.prototype = {
        name : 'fan'
    }
    // 相当于
    var obj = {};
    obj1 = obj;
    obj = {}


    // 4. 对象如何查看对象的构造函数 -> constructor
    // 修改 Car 的 constructor 为 Person
    Car.prototype = {
        constructor : Person
    }
    function Car() {}
    var car = new Car();

</script>
</html>
